package chapter_5.demo3;

import chapter_4.Dish;

import java.util.Arrays;
import java.util.List;

/**
 * @author: hero生仔
 */
public class Solution {
    static List<Dish> menu = Arrays.asList(
            new Dish("pork", false, 800, Dish.Type.MEAT),
            new Dish("beef", false, 700, Dish.Type.MEAT),
            new Dish("chicken", false, 400, Dish.Type.MEAT),
            new Dish("french fries", true, 530, Dish.Type.OTHER),
            new Dish("rice", true, 350, Dish.Type.OTHER),
            new Dish("season fruit", true, 120, Dish.Type.OTHER),
            new Dish("pizza", true, 550, Dish.Type.OTHER),
            new Dish("prawns", false, 300, Dish.Type.FISH),
            new Dish("salmon", false, 450, Dish.Type.FISH));

    public static void main(String[] args) {
        // 怎样用map和reduce方法数一数流中有多少个菜呢？
        Integer result = menu.stream()
                .map(dish -> 1)
                .reduce(0, Integer::sum);
        System.out.println(result);

        // map和reduce的连接通常称为 map-reduce模式，容易并行化
        long count = menu.stream().count();
        System.out.println(count);
    }
}
